// app.js

// 仅仅只需要将 utils/utils.js 执行以下，不需要接收任何数据和变量
// import './utils/utils.js'
// import './utils/http.js'
import './utils/index.js'

// 我们找 this，看上层作用域（函数作用域）（看函数定义而不是函数调用）
App({
  globalData: {},

  globalMethods: {
    /**
     * 设置 token
     * @param {String} token token 值，会自动添加 Bearer+空格 前缀
     */
    setToken(token, refreshToken) {
      if (!token.startsWith('Bearer ')) {
        token = 'Bearer ' + token
      }
      wx.setStorageSync('token', token)

      if (!refreshToken.startsWith('Bearer ')) {
        refreshToken = 'Bearer ' + refreshToken
      }
      wx.setStorageSync('refreshToken', refreshToken)

      // 注意：这个 this 指向的是 globalMethods 这个对象，而不再是 App 实例了
      // this.globalData.token = token

      const app = getApp()
      app.globalData.token = token
      app.globalData.refreshToken = refreshToken
    },
  },

  onLaunch() {
    this.globalData.token = wx.getStorageSync('token')
    this.globalData.refreshToken = wx.getStorageSync('refreshToken')
  },
})

// const app = getApp()
